package com.cjm.one.model.goods.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.cjm.one.model.goods.entity.GoodsSku;
import com.cjm.one.model.goods.enums.GoodsInfoAuditStatusEnum;
import com.cjm.one.model.goods.enums.GoodsInfoIsHotEnum;
import com.cjm.one.model.goods.enums.GoodsInfoIsNewEnum;
import com.cjm.one.model.goods.enums.GoodsInfoStatusEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class GoodsInfoDto implements Serializable {
    @ExcelProperty(value = "商品id")
    private Long id;

    /**
     * 商品名称
     */
    @Schema(description = "商品名称")
    @ExcelProperty(value = "商品名称")
    private String goodName;

    /**
     * 品牌id
     */
    @Schema(description = "品牌id")
    @ExcelProperty(value = "品牌id")
    private Long brandId;
    /**
     * 品牌名称
     */
    @Schema(description = "品牌名称")
    @ExcelProperty(value = "品牌名称")
    private String brandName;

    /**
     * 一级分类id
     */
    @Schema(description = "一级分类id")
    @ExcelProperty(value = "一级分类id")
    private Long category1Id;

    /**
     * 二级分类id
     */
    @Schema(description = "二级分类id")
    @ExcelProperty(value = "二级分类id")
    private Long category2Id;

    /**
     * 三级分类id
     */
//    @TableField("category3_id")
//    @Schema(description = "三级分类id")
//    private Long category3Id;

    /**
     * 商品简介
     */
    @Schema(description = "商品简介")
    @ExcelProperty(value = "商品简介")
    private String introduction;

    /**
     * 商品轮播图
     */
    @Schema(description = "商品轮播图")
    @ExcelProperty(value = "商品轮播图")
    private String sliderUrls;

    /**
     * 商品规格json
     */
    @Schema(description = "商品规格json")
    @ExcelProperty(value = "商品规格json")
    private String specValue;

    /**
     * 线上状态：0-初始值，1-上架，-1-自主下架
     */
    @Schema(description = "线上状态：0-初始值，1-上架，-1-自主下架")
    @ExcelProperty(value = "线上状态：0-初始值，1-上架，-1-自主下架")
    private GoodsInfoStatusEnum status;

    /**
     * 审核状态：0-初始值，1-通过，-1-未通过
     */
    @Schema(description = "审核状态：0-初始值，1-通过，-1-未通过")
    private GoodsInfoAuditStatusEnum auditStatus;

    /**
     * 审核信息
     */
    @Schema(description = "审核信息")
    private String auditMessage;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "更新时间")
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    /**
     * 商品详情html
     */
    @Schema(description = "商品详情html")
    @ExcelProperty(value = "商品详情html")
    private String details;

    /**
     * 是否推荐商品 0 否 1是
     */
    @Schema(description = "是否推荐商品 0 否 1是")
    @ExcelProperty(value = "是否推荐商品 0 否 1是")
    private GoodsInfoIsHotEnum idHot;
    @Schema(description = "是否新品商品 0 否 1是")
    @ExcelProperty(value = "是否新品商品 0 否 1是")
    private GoodsInfoIsNewEnum isNew;

    /**
     * 删除标记（0:不可用 1:可用）
     */
//    private Integer isDeleted;

    private static final long serialVersionUID = 1L;

    @Schema(description = "商品sku")
    @ExcelProperty(value = "商品sku")
    private List<GoodsSku> goodsSkuList;

    @Schema(description = "商品产地")
    @ExcelProperty(value = "商品产地")
    private String origin;
    @Schema(description = "酒精含量")
    @ExcelProperty(value = "酒精含量")
    private BigDecimal alcoholContent;
    @Schema(description = "净含量")
    @ExcelProperty(value = "净含量")
    private Integer netContent;
}
